package 面向对象初级.类和对象;

public class MethodDefineDemo {
    /**
     * 无返回值，无参数
     */
    public void sayHello() {
        System.out.println("hello");
    }
    /**
     * 无返回值，有参数
     *
     * @param width
     * @param height
     * @param key
     */
    public void printRectangle(int width, int height, char key) {
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {
                System.out.print(key);
            }
            System.out.println();
        }
    }
    /**
     * 有返回值无参数
     * @return int 类型
     */
    public int getIntBetweenOneToHundred() {
        return (int) (Math.random() * 100) + 1;
    }

    /**
     * 有返回值有参数
     *
     * @param n1
     * @param n2
     * @return
     */
    public int max(int n1, int n2) {
        return n1 > n2 ? n1 : n2;
    }
    public static void main(String[] args) {
        //静态的方法必须调用的也是静态的方法
        /*
        第一种方式：给每一个方法上加static
        第二种方式：new对象的方式来进行调用
         */
        MethodDefineDemo methodDefineDemo = new MethodDefineDemo();
        System.out.println("方法的调用演示");
        methodDefineDemo.sayHello();
        methodDefineDemo.sayHello();
        methodDefineDemo.sayHello();
        //匿名类的方式
        new MethodDefineDemo().sayHello();

        System.out.println("第二个方法的执行");
        methodDefineDemo.printRectangle(4, 6, '#');

        System.out.println("第三个方法的执行");
        //赋值给一个变量
        int random = methodDefineDemo.getIntBetweenOneToHundred();
        System.out.println(random);
        System.out.println(methodDefineDemo.getIntBetweenOneToHundred());

        System.out.println("第四个方法的执行");
        int result = methodDefineDemo.max(100, 200);
        System.out.println(result);
        System.out.println(methodDefineDemo.max(30, 400));
    }
}
